// 测试脚本 - 调试 DBC 解析问题
const fs = require('fs');

// 加载解析器
eval(fs.readFileSync('dbc-parser.js', 'utf8'));

// 测试简单的 VERSION 解析
function testVersionParsing() {
    console.log('=== 测试 VERSION 解析 ===');
    
    const testContent = 'VERSION "EmptyFile.dbc"';
    console.log('测试内容:', testContent);
    
    try {
        const tokenizer = new DBCTokenizer(testContent);
        
        // 逐个检查 token
        console.log('\n--- Token 分析 ---');
        let token = tokenizer.getNextToken();
        console.log('Token 1:', token.type, '|', token.image);
        
        token = tokenizer.getNextToken();
        console.log('Token 2:', token.type, '|', token.image);
        
        token = tokenizer.getNextToken();
        console.log('Token 3:', token.type, '|', token.image);
        
    } catch (error) {
        console.error('词法分析错误:', error.message);
    }
    
    // 测试完整解析
    console.log('\n--- 完整解析测试 ---');
    try {
        const result = parseDBCContent(testContent, 'test.dbc');
        console.log('解析成功:', result);
    } catch (error) {
        console.error('解析错误:', error.message);
    }
}

// 测试完整文件
function testFullFile() {
    console.log('\n\n=== 测试完整文件 ===');
    
    try {
        const content = fs.readFileSync('cpp-can-parser/tests/dbc-files/big-endian-1.dbc', 'utf8');
        console.log('文件前 100 个字符:', content.substring(0, 100));
        
        const tokenizer = new DBCTokenizer(content);
        
        // 检查前几个 token
        console.log('\n--- 前几个 Token ---');
        for (let i = 0; i < 5; i++) {
            const token = tokenizer.getNextToken();
            console.log(`Token ${i + 1}:`, token.type, '|', token.image);
            if (token.type === 'Eof') break;
        }
        
    } catch (error) {
        console.error('文件测试错误:', error.message);
    }
}

// 运行测试
testVersionParsing();
testFullFile(); 